/*
* ProjetoPSA - Plano de Substituição de Aulas
*    Copyright (C) 2010  Marcelo e Cicero
*
*    This program is free software: you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*    the Free Software Foundation, either version 3 of the License, or
*    (at your option) any later version.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
*/


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package projetoPSA.hibernate;

import org.hibernate.Session;

/**
 *
 * @author Marcelo e Cicero
 */
public class DaoGenerico {

    private Session sessao;
    private Object objeto;

    public DaoGenerico() {
        System.out.println("-->" + sessao);
        this.sessao = HibernateUtils.getSessao();
        this.sessao.beginTransaction().begin();
    }

    public DaoGenerico(Object objeto) {
        this.objeto = objeto;
        System.out.println("-->" + sessao);
        this.sessao = HibernateUtils.getSessao();
        this.sessao.beginTransaction().begin();
    }

    public void insert(){
        this.sessao.save(objeto);
        commit();
    }

    public void update(){
        this.sessao.update(objeto);
        commit();
    }

    public void delete(){
        this.sessao.delete(objeto);
        commit();
    }

    public void persist(){
        this.sessao.saveOrUpdate(objeto);
        commit();
    }


    private void commit(){
        this.sessao.beginTransaction().commit();
    }

    public Session getSessao(){
        return sessao;
    }



}
